#!/usr/bin/evn python
# coding=utf-8
# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +
#        ┏┓　　　┏┓+ +
# 　　　┏┛┻━━━┛┻┓ + +
# 　　　┃　　　　　　 ┃ 　
# 　　　┃　　　━　　　┃ ++ + + +
# 　　 ████━████ ┃+
# 　　　┃　　　　　　 ┃ +
# 　　　┃　　　┻　　　┃
# 　　　┃　　　　　　 ┃ + +
# 　　　┗━┓　　　┏━┛
# 　　　　　┃　　　┃　　　　　　　　　　　
# 　　　　　┃　　　┃ + + + +
# 　　　　　┃　　　┃　　　　Codes are far away from bugs with the animal protecting　　　
# 　　　　　┃　　　┃ + 　　　　神兽保佑,代码无bug　　
# 　　　　　┃　　　┃
# 　　　　　┃　　　┃　　+　　　　　　　　　
# 　　　　　┃　 　　┗━━━┓ + +
# 　　　　　┃ 　　　　　　　┣┓
# 　　　　　┃ 　　　　　　　┏┛
# 　　　　　┗┓┓┏━┳┓┏┛ + + + +
# 　　　　　　┃┫┫　┃┫┫
# 　　　　　　┗┻┛　┗┻┛+ + + +
# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +"""
"""
Author = zyx
@Create_Time: 2022/5/29 14:09
@version: v1.0.0
@Contact: 308711822@qq.com
@File: __init__.py.py
@文件功能描述:------
"""
from fastapi import APIRouter as _APIRouter
from typing import NamedTuple,Optional


class APIVersion(NamedTuple):

    major: int = 1  # 主要版本
    minor: Optional[int] = None  # 次要版本

    def __str__(self) -> str:
        if self.minor is not None:
            return f"{self.major}_{self.minor}"
        else:
            return f"{self.major}"


class APIRouter(_APIRouter):
    '''
    使用示例：
        # group_router = APIRouter(
        #     prefix="/accounting/groups",
        #     tags=["Groups"],
        #     infirmary_responses={
        #         404: {"description": "URL not found"},
        #         400: {"description": "Bad request"}
        #     },
        #     version=APIVersion(1)
        # )
    '''
    def __init__(self, version: Optional[APIVersion] = None, **kwargs):
        super().__init__(**kwargs)
        if version:
            self.prefix = f"/v{version}{self.prefix}"

